@import url('https://esm.sh/swiper@11.2.2/swiper-bundle.min.css');
@import url('https://esm.sh/flag-icons@7.3.2/css/flag-icons.min.css');

@import 'tailwindcss';
@plugin "@tailwindcss/typography";
@plugin "@tailwindcss/forms";
@plugin "@tailwindcss/aspect-ratio";

/* Link to JS config for content paths */
@config '../../../config/tailwind.config.js';

/* Tailwind v4 Base Layer - Set default border color */
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    border-color: var(--border-default-color, currentColor);
  }
}

/* Tailwind v4 Theme Configuration */
@theme {
  /* Custom Colors */
  --color-primary: var(--primary);
  --color-accent: var(--accent);
  --color-neutral: var(--neutral);
  --color-danger: var(--danger);
  --color-success: var(--success);

  --color-accent-100: var(--accent-100);
  --color-neutral-50: var(--neutral-50);
  --color-neutral-100: var(--neutral-100);
  --color-neutral-200: var(--neutral-200);
  --color-neutral-300: var(--neutral-300);
  --color-neutral-400: var(--neutral-400);
  --color-neutral-500: var(--neutral-500);
  --color-neutral-600: var(--neutral-600);
  --color-neutral-700: var(--neutral-700);
  --color-neutral-800: var(--neutral-800);
  --color-neutral-900: var(--neutral-900);

  --color-background: var(--background);
  --color-section-background: var(--section-background, var(--background));
  --color-text: var(--text);

  --color-button: rgba(var(--button-rgb), <alpha-value>);
  --color-button-text: var(--button-text);
  --color-button-hover: var(--button-hover);
  --color-button-hover-text: var(--button-hover-text);

  --color-secondary-button: var(--secondary-button);
  --color-secondary-button-text: var(--secondary-button-text);
  --color-secondary-button-hover: var(--secondary-button-hover);
  --color-secondary-button-hover-text: var(--secondary-button-hover-text);

  --color-button-light: var(--button-light);
  --color-button-light-text: var(--button-light-text);
  --color-button-light-hover: var(--button-light-hover);
  --color-button-light-hover-text: var(--button-light-hover-text);

  --color-input: var(--input);
  --color-input-bg: var(--input-bg);
  --color-input-text: var(--input-text);
  --color-input-focus: var(--input-focus);
  --color-input-focus-bg: var(--input-focus-bg);
  --color-input-focus-text: var(--input-focus-text);

  /* Letter Spacing */
  --letter-spacing-widest: 0.07rem;

  /* Animations */
  --animate-fadeIn: fadeIn 0.5s ease-in-out;

  /* Typography - Prose Colors */
  --prose-body: var(--text);
  --prose-headings: var(--text);
  --prose-bold: var(--text);
  --prose-links: var(--text);
  --prose-counters: var(--text);
  --prose-bullets: var(--text);
  --prose-lead: var(--text);
  --prose-hr: var(--border-default-color);
  --prose-th-borders: var(--border-default-color);
  --prose-td-borders: var(--border-default-color);
  --prose-quote-borders: var(--border-default-color);
  --prose-quotes: var(--text);
}

/* Define fadeIn keyframes for animation */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Custom Variants */

/* Variant for scrollbar rounded */
@variant scrollbar {
  &::-webkit-scrollbar {
    @slot;
  }
}

/*
  This is the storefront CSS
*/

.container,
.page-container {
  max-width: 90rem;
  padding-left: 1rem;
  padding-right: 1rem;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1024px) {
  .page-container {
    padding-left: 3.75rem;
    padding-right: 3.75rem;
  }
}

@media (min-width: 1024px) {
  header.header-logo-centered.headroom--not-top
    > nav
    > .page-container
    > .flex {
    align-items: center !important;
  }
}

html {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body .section-header {
  @apply sticky top-0 z-50;
}

.trix-content a {
  text-decoration: underline;
}

.trix-content ul {
  list-style-type: revert;
  list-style-position: inside;

  @apply pl-8;

  &:not(ul ul) {
    @apply mt-2 mb-6;
  }
}

.trix-content li:last-child {
  @apply mb-2;
}

.trix-content ol {
  list-style: decimal;
  list-style-position: inside;

  @apply pl-8;

  &:not(ol ol) {
    @apply mt-2 mb-6;
  }
}

.text-input {
  max-width: 100%;
  border-radius: var(--input-border-radius);
  border-color: var(--input);
  background-color: var(--input-bg);
  color: var(--input-text);
  height: 3rem;
}

textarea.text-input {
  height: auto !important;
  min-height: 3rem;
  border-radius: 0;
}

.text-input:disabled {
  background-color: var(--neutral-50);
  border-color: var(--input);
  color: var(--neutral-400);
}

.text-input:focus {
  border-color: var(--primary);
  background-color: var(--input-focus-bg);
  --tw-ring-color: var(--primary);
}
.invalid {
  border-color: var(--danger);
  --tw-ring-color: var(--danger);
}

.turbo-frame button {
  background-color: transparent;
  cursor: pointer;
}

.select-input {
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: var(--input-border-radius);
  border-color: var(--input);
  background-color: var(--input-bg);
  color: var(--input-text);
  height: 3rem;
}

.select-input:focus {
  border-color: var(--primary);
  background-color: var(--input-focus-bg);
  --tw-ring-color: var(--primary);
}

.checkbox-input {
  cursor: pointer;
  border-radius: var(--input-border-radius) / 2;
  border-color: var(--input);
  background-color: transparent;
}

.checkbox-input:checked {
  background-color: var(--primary);
}

.radio-input {
  cursor: pointer;
}

.checkbox-input:focus,
.checkbox-input:checked,
.radio-input:focus,
.radio-input:checked {
  outline: none !important;
  box-shadow: none !important;
}

.menu-item {
  font-weight: 400;
  line-height: 0.875rem;
  letter-spacing: 0.06rem;
  text-transform: uppercase;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  border: 1.5px solid transparent;
}
.menu-item:hover span {
  border-bottom: 1.5px solid var(--accent);
}
.menu-item:active span,
.menu-item--active span {
  border-bottom: 1.5px solid var(--text);
}
.menu-item:focus {
  outline: none;
  border-radius: var(--button-border-radius);
}

@media (min-width: 1024px) {
  .menu-item {
    font-size: 0.875rem;
    line-height: 1.375rem;
    letter-spacing: 0.07rem;
    padding-top: 0px;
    padding-bottom: 0px;
  }
}

.btn-primary,
.btn-secondary {
  position: relative;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25rem;
  letter-spacing: 0.07rem;
  text-transform: uppercase;
  text-align: center;
  cursor: pointer;
  border-radius: var(--button-border-radius);
  background-color: var(--button-background-color, var(--button));
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  color: var(--button-text-color, var(--button-text));
  outline-offset: 0.5rem;
  transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.btn-primary {
  border: var(--button-border-width) solid
    var(--button-border-color, var(--button));
}

.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-icon:not(.btn-primary, .btn-secondary):focus-visible {
  outline: none;
}

.btn-primary:not(:disabled):focus::after,
.btn-primary:not(:disabled):active::after,
.btn-secondary:not(:disabled):focus::after,
.btn-secondary:not(:disabled):active::after {
  content: "";
  border-radius: var(--button-border-radius);
  position: absolute;
  top: -8px;
  left: -8px;
  width: calc(100% + 16px);
  height: calc(100% + 16px);
  background-color: transparent;
  display: inherit;
}

.btn-primary:disabled,
.btn-primary.btn-disabled {
  cursor: not-allowed;
}

.btn-primary:hover:not(:disabled, .btn-disabled),
.btn-secondary:hover:not(:disabled, .btn-disabled) {
  cursor: pointer;
}

.btn-primary:hover:not(:disabled, .btn-disabled) {
  color: var(--button-background-color, var(--primary));
  background-color: var(--button-text-color, var(--button-text));
}

.btn-primary:hover:not(:disabled) svg path {
  stroke: var(--button-background-color, var(--primary));
}

.btn-secondary {
  color: var(--secondary-button-text);
  background-color: var(--secondary-button);
  border: var(--button-border-width) solid
    var(--button-border-color, var(--secondary-button-text));
}

.btn-secondary:hover:not(:disabled) {
  color: var(--secondary-button);
  background-color: var(--secondary-button-text);
}

.btn-secondary:hover:not(:disabled) svg path {
  stroke: var(--secondary-button);
}

@media (hover: none) {
  .btn-primary:hover:not(:disabled, .btn-disabled) {
    color: var(--button-text);
    background-color: var(--button);
  }
  .btn-secondary:hover:not(:disabled) {
    color: var(--secondary-button-text);
    background-color: var(--secondary-button);
  }
}

.btn-secondary:focus,
.btn-secondary:active {
  outline-color: var(--secondary-button);
}

.btn-primary.btn-icon,
.btn-secondary.btn-icon,
.link-icon {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

.btn-primary.btn-icon > svg .btn-secondary.btn-icon > svg {
  height: 1.25rem;
}

.btn-icon:not(.btn-primary, .btn-secondary) {
  position: relative;
  padding: 0.5rem;
  border-radius: var(--button-border-radius);
  outline-offset: 1px;
}

.btn-icon:not(.btn-primary, .btn-secondary):hover {
  background: var(--accent-100);
}

.btn-icon:not(.btn-primary, .btn-secondary):active {
  background: var(--accent);
}

.btn-icon:not(.btn-primary, .btn-secondary):focus::after {
  content: "";
  border-radius: var(--button-border-radius);
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background-color: transparent;
  display: inherit;
}

.link {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.375;
  letter-spacing: 0.07rem;
  text-transform: uppercase;
  color: var(--text);
  border-bottom: 1px solid transparent;
}

.link:hover {
  border-bottom-color: var(--text);
}

.link:focus-visible {
  outline-offset: 0.25rem;
  padding: 0 0.25rem;
  border-radius: 0.25rem;
}

.link > svg {
  height: 1.5rem;
}

.link-disabled {
  opacity: 0.3;
}

#checkout-page .btn-primary {
  border-radius: var(--button-border-radius);
  border: var(--button-border-width) solid
    var(--button-border-color, var(--button));
  font-size: 1rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: initial;
}

#checkout-page .btn-primary:focus,
#checkout-page .btn-primary:active {
  outline: none;
}

#checkout-page .btn-primary:hover:not(:disabled) {
  opacity: 0.8;
  background-color: var(--button);
  color: var(--button-text);
}

#checkout-page .btn-primary:disabled {
  opacity: 0.5;
  background-color: var(--button);
  border-color: var(--button);
}

#checkout-page .text-input,
#checkout-page .select-input {
  border-radius: 0.375rem;
  height: 46.8px;
}

#checkout-page #flashes .fixed {
  position: fixed;
  left: 0;
}

#checkout-page #checkout_payment_methods[busy] {
  opacity: 0.5;
  cursor: wait;
  pointer-events: none;
}

#checkout-page #checkout-message {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    @apply pb-1 text-xl;
  }
}

.field_with_errors .text-input,
.field_with_errors .select-input {
  --tw-border-opacity: 1;
  border-color: rgb(220 38 38 / var(--tw-border-opacity));
}

.StripeElement iframe:focus-visible {
  outline: none;
}

.breadcrumb-item {
  font-size: 12px;
  margin-top: -1px;
}

.breadcrumb-item::before {
  content: url("data:image/svg+xml;utf8,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ccc' class='bi bi-chevron-right' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  padding-right: 0.5rem;
  position: relative;
  top: 0.25rem;
}

.breadcrumb-item:first-child::before {
  content: none;
}

.breadcrumb-item:first-child {
  margin-top: 0.1rem;
}

.breadcrumb-square {
  width: 0.25rem;
  height: 0.25rem;
  margin: 0.6rem 0;
  background-color: var(--text);
}

.delivery-list-item:last-child {
  border-radius: 0.375rem !important;
}

.has-float-label {
  position: relative;
}

.has-float-label label {
  color: var(--input-text);
  font-size: 11px;
  position: absolute;
  left: 10px;
  cursor: text;
  top: 3px;
  padding: 0 4px;
  opacity: 0.8;
  transition: transform 0.2s ease-in-out;
  white-space: nowrap;
  pointer-events: none;
}

.has-float-label input,
.has-float-label select {
  padding-top: 1rem;
  padding-bottom: 0.3rem;
}

.has-float-label input:-moz-placeholder-shown + label,
.has-float-label select:-moz-placeholder-shown + label {
  opacity: 0;
  transform: translateY(5px);
}

.has-float-label input:-ms-input-placeholder + label,
.has-float-label select:-ms-input-placeholder + label {
  opacity: 0;
  transform: translateY(5px);
}

.has-float-label input:placeholder-shown + label,
.has-float-label select:placeholder-shown + label {
  opacity: 0;
  transform: translateY(5px);
}

.has-float-label input:-moz-placeholder-shown,
.has-float-label select:-moz-placeholder-shown {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

.has-float-label input:-ms-input-placeholder,
.has-float-label select:-ms-input-placeholder {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

.has-float-label input:placeholder-shown,
.has-float-label select:placeholder-shown {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

.badge,
.badge-success,
.badge-paid,
.badge-balance_due,
.badge-warning,
.badge-canceled,
.badge-failed,
.badge-refunded,
.badge-void,
.badge-pending,
.badge-ready,
.badge-partial,
.badge-active,
.badge-balance_due,
.badge-inactive {
  margin-right: 0.25rem;
  display: inline-block;
  border-radius: var(--badge-border-radius);
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.375rem;
  font-weight: 400;
}

.badge:last-child,
.badge-success:last-child,
.badge-paid:last-child,
.badge-balance_due:last-child,
.badge-warning:last-child,
.badge-canceled:last-child,
.badge-failed:last-child,
.badge-refunded:last-child,
.badge-void:last-child,
.badge-pending:last-child,
.badge-ready:last-child,
.badge-balance_due:last-child,
.badge-partial:last-child {
  margin-right: 0px;
}

.badge-success,
.badge-paid,
.badge-active {
  background-color: #d9f7ea;
}

.badge-warning,
.badge-canceled,
.badge-balance_due,
.badge-failed {
  background-color: #f8e7e5;
}

.badge,
.badge-balance_due,
.badge-refunded,
.badge-pending,
.badge-void,
.badge-ready,
.badge-inactive {
  background-color: #f3f3f3;
}

.badge-partial {
  background-color: rgb(186 230 253);
}

address {
  font-style: normal;
}

button:focus {
  outline: none;
}

.summary-folded .summary {
  height: 0px !important;
}

.summary-folded .show-summary {
  display: block;
}

.summary-folded .hide-summary {
  display: none;
}

.chevron-summary::after {
  content: url("data:image/svg+xml;utf8,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' class='bi bi-chevron-right' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  color: var(--sidebar-divider);
  transform: rotate(-90deg);
  margin-left: 0.07rem;
}

.summary-folded .chevron-summary::after {
  transform: rotate(90deg);
}

@media (min-width: 1024px) {
  .summary-folded .summary {
    pointer-events: auto;
    height: 100% !important;
  }
}

/* .address-form {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 768px) {
  .address-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .address-form.cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .address-form.col-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
} */

.field_with_errors {
  display: contents;
}

.turbo-progress-bar {
  background-color: var(--primary);
}
.modal .turbo-frame-error {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  font-weight: normal;
}

.card-dialog {
  margin-bottom: 1.25rem;
}

.border-default,
.border-sidebar {
  border-color: var(--border-default-color);
}

.card-dialog {
  border-radius: var(--border-default-radius);
  box-shadow: var(--border-default-shadow);
}

.border-default.border-t {
  border-width: 0;
  border-radius: 0;
  border-top-width: var(--border-default-width);
}

.border-default.border-b {
  border-width: 0;
  border-radius: 0;
  border-bottom-width: var(--border-default-width);
}

.border-default.border-b.border-t {
  border-width: 0;
  border-radius: 0;
  border-top-width: var(--border-default-width);
  border-bottom-width: var(--border-default-width);
}

.border-default.border-b-0 {
  border-bottom-width: 0;
}

.logo {
  max-height: 60px;
}

.checkout-mobile-header .logo {
  display: inline;
}

.product-image-container {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}

.product-image-container img {
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 1024px) {
  .line-items {
    max-height: none !important;
  }
}

.alert-notice {
  background-color: var(--success);
}

.alert-error {
  background-color: #f8e7e5;
}

.alert-success {
  background-color: var(--success);
}

.alert-warning {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity));
}

@media (min-width: 1024px) {
  .background {
    background: linear-gradient(
      90deg,
      var(--background) 50%,
      var(--accent) 50%
    );
  }
}

.quantity-picker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: var(--input-border-radius);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  border: var(--border-default-width) solid var(--border-default-color);
}

.quantity-picker.border-t {
  border-width: 0;
  border-radius: 0;
  border-top-width: var(--border-default-width);
}

.quantity-picker.border-b {
  border-width: 0;
  border-radius: 0;
  border-bottom-width: var(--border-default-width);
}

.quantity-picker.border-b-0 {
  border-bottom-width: 0;
}

.quantity-picker button:not(.hidden) {
  cursor: pointer;
  background-color: transparent;
  display: inline-flex;
  width: 36px;
  height: 36px;
  justify-content: center;
  align-items: center;
  border-radius: var(--input-border-radius);
}
.quantity-picker button svg {
  width: 18px;
  height: 18px;
}

.quantity-picker button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.quantity-picker input {
  width: 1.5rem;
  height: 100%;
  border-width: 0px;
  padding: 0px 0px;
  text-align: center;
  background-color: transparent;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin: 0;
}

.quantity-picker input::-webkit-inner-spin-button,
.quantity-picker input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.quantity-picker input:focus {
  border-width: 0px;
  outline: none;
  border-color: transparent;
  box-shadow: none;
}

.quantity-picker input[type="number"]::-webkit-inner-spin-button,
.quantity-picker input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.quantity-picker input[type="number"] {
  -moz-appearance: textfield;
}

.swiper-pagination-bullet {
  border: 1px solid var(--primary);
  background: none;
  opacity: 1;
  margin: 0px 0.375rem !important;
  width: 10px;
  height: 10px;
}

input.without-arrows[type="number"]::-webkit-outer-spin-button,
input.without-arrows[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input.without-arrows[type="number"] {
  -moz-appearance: textfield;
}

.swiper-pagination-bullet-active {
  background: var(--primary) !important;
}

.swiper-pagination-current {
  color: var(--text);
}

.swiper-pagination-lock {
  display: none;
}

.swiper-notification {
  display: none;
}

.pswp {
  --pswp-bg: var(--accent) !important;
  --pswp-placeholder-bg: var(--accent) !important;
}

.pswp__button--close {
  margin: 0;
  width: 4rem;
  height: 4rem;
  background: var(--background);
  opacity: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
.pswp__button--close:hover {
  background: var(--background);
}

.pswp__button--close .pswp__icn {
  position: static;
  width: 1.5rem;
  height: 1.5rem;
}

.pswp__button--arrow .pswp__icn {
  width: 2rem;
  height: 2rem;
  top: 0;
  margin: 0;
  left: 0;
}

.pswp__button--arrow--next .pswp__icn {
  transform: rotate(0deg) !important;
}

.pswp__button--arrow {
  width: 2rem;
  height: 2rem;
  bottom: 2rem;
  top: auto;
  visibility: visible !important;
}

.pswp__button--arrow--prev {
  left: 1rem;
}

.pswp__button--arrow--next {
  right: 1rem;
}

.pswp__button--zoom {
  display: none !important;
}

.pswp__counter {
  display: none;
}

.pswp__bullets-indicator {
  display: flex;
  flex-direction: row;
  align-items: center;
  bottom: 2rem;
  height: 2rem;
  position: absolute;
  left: 50%;
  transform: translate(-50%, 0);
}

.pswp__bullet {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0.25rem;
  margin: 0 0.25rem;
  border-radius: 50%;
  border: 1px solid var(--primary);
}

.pswp__bullet--active {
  background: var(--primary);
}
.pswp__pagination {
  display: none;
}

@media (min-width: 1024px) {
  .pswp__button--close {
    margin-right: 3.75rem;
    margin-top: 3.75rem;
  }
  .pswp__button--arrow {
    top: 50%;
  }
  .pswp__button--arrow--prev {
    left: 3.75rem;
  }
  .pswp__button--arrow--next {
    right: 3.75rem;
  }
  .pswp__bullets-indicator {
    display: none;
  }
  .pswp__pagination {
    display: block;
    position: absolute;
    top: 5rem;
    left: 3.75rem;
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 400;
    color: var(--neutral);
  }
  .pswp__pagination--current {
    color: var(--text);
  }
}

#pinch-to-zoom {
  left: 50%;
  z-index: 100001;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  display: none;
}

.product-image :hover .zoom-icon {
  display: block;
}

.flyout-menu:hover .flyout-button button {
  border-color: var(--primary);
  color: var(--primary);
}

.flyout-menu:hover .flyout-menu-container {
  display: block;
  z-index: 9999;
}

.product-description p {
  margin-bottom: 1rem;
}

.swipe-slide {
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
}

.swiper-wrapper {
  -webkit-transform-style: preserve-3d;
}

.word-break {
  word-break: break-word;
}

.tailwind-container {
  width: 100%;
}

@media (min-width: 640px) {
  .tailwind-container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .tailwind-container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .tailwind-container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .tailwind-container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .tailwind-container {
    max-width: 1536px;
  }
}

.hamburger-visible,
.search-visible {
  opacity: 1;
  pointer-events: auto;
}

.hamburger-visible .body {
  transform: translateX(0);
}

.menu-open div:first-of-type {
  opacity: 0;
}

.menu-open div:last-of-type {
  opacity: 1;
}

html[aria-busy="true"] .hide-on-load {
  pointer-events: none;
  opacity: 0;
}

.label {
  position: absolute;
  width: fit-content;
  height: fit-content;
  overflow-wrap: anywhere;
}

@media (max-width: 768px) {
  *[width-desktop="true"] {
    width: 100% !important;
  }
}

@media (min-width: 1024px) {
  .flex-centered {
    position: absolute;
    flex: 0 1 auto;
    left: 50%;
    transform: translateX(-50%);
  }
}

/* kanety/stimulus-accordion */

.st-accordion .st-accordion__icon svg {
  transition: transform 0.2s;
}

.st-accordion .st-accordion__icon--opened svg {
  transform: rotate(-180deg);
}

.st-accordion .st-accordion__content:not(.st-accordion__content--visible) {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.2s;
  visibility: hidden;
  padding: 0;
}

.st-accordion .st-accordion__content.st-accordion__content--visible {
  opacity: 1;
  transition: all 0.2s;
  visibility: visible;
  margin-bottom: 1rem;
}

.st-accordion button {
  width: 100%;
  text-align: left;
}

.fixed-pdp-button {
  transition: all 0.2s ease;
}

@media (min-width: 1024px) {
  .fixed-pdp-button {
    display: none !important;
  }
}

.sidebar-pane {
  max-width: 420px;
}

#slideover-cart .line-item-total-amount {
  display: none;
}

#slideover-cart .cart-contents {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#slideover-cart #line-items {
  flex-grow: 1;
  overflow: auto;
}
#slideover-cart .cart-line-item {
}
.cart-line-item .delete svg {
  width: 1rem !important;
  height: 1rem !important;
}
#slideover-cart .cart-summary-container {
  background-color: var(--accent);
}
#slideover-cart .cart-summary-container * {
  text-align: left !important;
}
#slideover-cart .shopping-cart-total-text {
  display: flex;
  justify-content: space-between;
}
#slideover-cart .btn-primary {
  width: 100%;
  margin-top: 1rem;
  text-align: center !important;
  margin-bottom: 0;
}
#slideover-cart turbo-frame[busy] {
  opacity: 0.5;
  cursor: wait;
}
.line-item-overlay {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#slideover-cart turbo-frame[busy] .line-item-overlay {
  display: block;
}

.headroom--unpinned:not(.headroom--frozen) {
  pointer-events: none;
}

.headroom--unpinned:not([data-toggle-menu-open-value="true"]):not(
    [data-slideover-open-value="true"]
  )
  nav {
  transform: translateY(-100%);
}
/*#region noUiSlider functional */
.noUi-target,
.noUi-target * {
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-user-select: none;
  -ms-touch-action: none;
  touch-action: none;
  -ms-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.noUi-target {
  position: relative;
}
.noUi-base,
.noUi-connects {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
}
.noUi-connects {
  overflow: hidden;
  z-index: 0;
}
.noUi-connect,
.noUi-origin {
  will-change: transform;
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  -ms-transform-origin: 0 0;
  -webkit-transform-origin: 0 0;
  -webkit-transform-style: preserve-3d;
  transform-origin: 0 0;
  transform-style: flat;
}
.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {
  left: 0;
  right: auto;
}
.noUi-vertical .noUi-origin {
  top: -100%;
  width: 0;
}
.noUi-horizontal .noUi-origin {
  height: 0;
}
.noUi-handle {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  position: absolute;
}
.noUi-touch-area {
  height: 100%;
  width: 100%;
}
.noUi-state-tap .noUi-connect,
.noUi-state-tap .noUi-origin {
  -webkit-transition: transform 0.3s;
  transition: transform 0.3s;
}
.noUi-state-drag * {
  cursor: inherit !important;
}
.noUi-horizontal {
  height: 18px;
}
.noUi-vertical {
  width: 18px;
}
.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {
  left: -17px;
  right: auto;
}
/*#endregion*/

.noUi-target {
  background: var(--border-default-color);
  height: 2px;
  width: calc(100% - 24px);
  margin-left: 12px;
}
.noUi-connect {
  background: var(--primary);
  height: 2px;
}
.noUi-handle {
  border: 3px solid #fff;
  width: 24px;
  height: 24px;
  right: -12px;
  top: -12px;
  border-radius: 50%;
  background: var(--primary);
  cursor: pointer;
}

.input-checkbox {
  width: 1.5rem;
  height: 1.5rem;
  cursor: pointer;
  border-color: var(--border-default-color);
  background-color: transparent;
  color: transparent;
}

.input-checkbox:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
  border-color: var(--primary);
}
.input-checkbox:hover {
  border-color: var(--primary);
}
.input-checkbox:checked:hover {
  border-color: var(--primary);
}
.input-checkbox:focus,
.input-checkbox:checked:focus {
  outline-color: var(--primary);
  outline: none;
  box-shadow: none;
}

#search-suggestions {
  z-index: 50;
  width: 100%;
  background-color: var(--background);
  top: 0;
  left: 0;
  display: none;
  position: absolute;
}
#search-suggestions::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: var(--background);
  opacity: 0.75;
  z-index: -1;
  animation: fadeInTo75 0.5s ease-in-out;
}

@keyframes fadeInTo75 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 0.75;
  }
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}

.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
@media (min-width: 768px) {
  .custom-desktop-height {
    height: var(--desktop-height);
  }
}
@media (max-width: 768px) {
  .custom-mobile-height {
    height: var(--mobile-height);
  }
}

.rounded-input {
  border-radius: var(--input-border-radius);
}

.rounded-button {
  border-radius: var(--button-border-radius);
}

.modal {
  position: fixed;
  overflow-y: auto;
  inset: 0px;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  /* https://stackoverflow.com/questions/32082121/why-is-fixed-position-elements-being-cut-off-on-full-screen-iphone-experience-wh */
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.modal .page-container,
.modal .main-product-container {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 none !important;
}

.product-modal #breadcrumbs {
  display: none;
}

.product-modal .add-to-wishlist {
  display: none;
}

.media-gallery-desktop .swiper-slide-thumb-active {
  position: relative;
}
.media-gallery-desktop .swiper-slide-thumb-active::after {
  position: absolute;
  width: 100%;
  height: 100%;
  border: 1px solid black;
  display: block;
  left: 0px;
  top: 0px;
  content: "";
}

.media-gallery-desktop .swiper-button-lock {
  display: none;
}
.media-gallery-desktop {
  container-name: media-gallery-desktop;
  container-type: inline-size;
}
@supports (container-type: inline-size) {
  .media-gallery-desktop {
    --arrows-display: none;
  }
}
@container media-gallery-desktop (max-width: calc(108px * 6 + 104px + 0.5rem)) {
  .media-gallery-desktop:has(.swiper-slide:nth-child(6))
    > .media-gallery-desktop__wrapper {
    --arrows-display: flex;
  }
}
@container media-gallery-desktop (max-width: calc(108px * 5 + 104px + 0.5rem)) {
  .media-gallery-desktop:has(.swiper-slide:nth-child(5))
    > .media-gallery-desktop__wrapper {
    --arrows-display: flex;
  }
}
@container media-gallery-desktop (max-width: calc(108px * 4 + 104px + 0.5rem)) {
  .media-gallery-desktop:has(.swiper-slide:nth-child(4))
    > .media-gallery-desktop__wrapper {
    --arrows-display: flex;
  }
}
@container media-gallery-desktop (max-width: calc(108px * 3 + 104px + 0.5rem)) {
  .media-gallery-desktop:has(.swiper-slide:nth-child(3))
    > .media-gallery-desktop__wrapper {
    --arrows-display: flex;
  }
}
@container media-gallery-desktop (max-width: calc(108px * 2 + 104px + 0.5rem)) {
  .media-gallery-desktop:has(.swiper-slide:nth-child(2))
    > .media-gallery-desktop__wrapper {
    --arrows-display: flex;
  }
}

.media-gallery-desktop-arrow {
  display: var(--arrows-display, flex);
}

#floating-cart-icon {
  bottom: 1rem;
  right: 1rem;
  z-index: 9998;
}

.custom-height {
  height: var(--mobile-height, var(--height));
}
@media (min-width: 501px) {
  .custom-height {
    height: var(--desktop-height, var(--height));
  }
}
@media (min-width: 768px) {
  .desktop-max-width {
    max-width: var(--desktop-max-width);
  }
}

.checkout-container {
  --main-container-width: 650px;
  --summary-container-width: 455px;
  grid-template-rows: min-content auto;
  grid-template-columns: 1fr;
  grid-template-areas:
    "summary"
    "main";
}

@media (min-width: 768px) {
  .checkout-container {
    grid-template-rows: 1fr;
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, var(--main-container-width))
      minmax(0, var(--summary-container-width))
      minmax(0, 1fr);
    grid-template-areas: "main main summary summary";
  }
}

#checkout-main #flashes {
  --flashes-container-width: var(--main-container-width) +
    var(--summary-container-width);
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, calc(var(--flashes-container-width)))
    minmax(0, 1fr);
  grid-template-areas: ". flash .";
  display: grid;
  left: 0;
}

#checkout-main #flashes > div {
  grid-area: flash;
}

#checkout-main {
  background: var(--background);
  grid-area: main;
}

#checkout-summary {
  background: var(--accent);
  grid-area: summary;
}

#checkout-main > .checkout-main-container,
#checkout-footer {
  max-width: var(--main-container-width);
  width: 100%;
  inline-size: 100%;
  padding: 0px 21px;
}
#checkout-footer {
  padding: 16px 21px;
  padding-top: 0;
}
#checkout-summary > .checkout-summary-container {
  max-width: var(--summary-container-width);
  width: 100%;
  inline-size: 100%;
  padding: 21px;
}

@media (min-width: 768px) {
  #checkout-main > .checkout-main-container {
    padding: 42px;
    flex-grow: 1;
  }
  #checkout-footer {
    padding: 16px 42px;
    padding-top: 0;
  }
  #checkout-summary > .checkout-summary-container {
    padding: 42px;
    position: sticky;
    top: 0;
  }
}

.size-chart-table table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.size-chart-table tr th {
  border: 1px solid var(--border-default-color);
  padding: 0.25rem;
  text-align: center;
  font-weight: 600;
}
.size-chart-table tr td {
  border: 1px solid var(--border-default-color);
  padding: 0.25rem;
  text-align: center;
}

.dropdown-button:focus svg {
  rotate: 180deg;
  transition: 200ms;
}

/* PDP properties */
.product-property, .product-metafield {
  ul {
    list-style: disc;
    padding-left: 2rem;
  }

  ol {
    list-style: decimal;
    padding-left: 2rem;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  a {
    font-weight: 600;
    line-height: 1.375;
    letter-spacing: 0.07rem;
    color: var(--text);
    border-bottom: 1px solid transparent;

    &:hover {
      border-bottom-color: var(--text);
    }

    &:focus-visible {
      outline-offset: 0.25rem;
      padding: 0 0.25rem;
      border-radius: 0.25rem;
    }
  }
}
.product-description-truncated {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--read-more-line-clamp, 3);
}
.header--nav-item .menu-item:focus:not(.header--mega-nav-container *) {
  outline: none;
  padding-left: 1rem;
  padding-right: 1rem;
  margin-left: 0rem;
  margin-right: 0rem;
}

.post-details-content {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    @apply my-4 text-xl font-medium;
  }

  li {
    b,
    strong {
      @apply font-semibold;
    }
  }

  pre {
    @apply mb-4;
  }

  p {
    @apply my-4;
  }

  p:first-child {
    margin-top: 0;
  }

  img {
    width: 100%;
  }

  hr {
    @apply mt-4 mb-6;
  }

  .attachment {
    @apply my-6;
  }

  .attachment__caption {
    @apply italic text-center text-neutral-600;
  }
}

.prose:not(:has(h1)) {
  h2:first-of-type {
    margin-top: 0;
  }
}

.pagination {
  .pagination-link {
    border: 1.5px solid transparent;
  }

  .pagination-link:hover {
    border-bottom: 1.5px solid var(--accent);
  }

  .pagination-link:active,
  .pagination-link--active {
    border-bottom: 1.5px solid var(--text);
  }

  .pagination-link--disabled {
    color: var(--neutral);
    pointer-events: none;
  }
}

label:has(.input-address-default:disabled) {
  color: var(--neutral);
}

.input-address-default:disabled {
  @apply cursor-not-allowed;

  border-color: var(--neutral);
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='#999999' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");

  &:hover {
    border-color: var(--neutral);
  }
}

body:has(.currency-and-locale-modal:not(.hidden)) .page-contents {
  position: relative;
  z-index: 1;
}

.video-embed-container {
  iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 1.77;
  }
}
